s ফ্ল্যাগ, যা Dotall Mode নামেও পরিচিত, একটি RegExp বৈশিষ্ট্য যা dot (.) চিহ্নের আচরণ পরিবর্তন করে। সাধারণভাবে, dot (.) চিহ্নটি স্ট্রিংয়ের একটি লাইনের মধ্যে যেকোনো চরিত্র (নতুন লাইন ছাড়া) মেলে। কিন্তু Dotall Mode (s ফ্ল্যাগ) সক্রিয় করলে, dot (.) চিহ্নটি নতুন লাইন (newline) সহ সমস্ত চরিত্রকেই মেলাতে পারে।
এটি বিশেষভাবে দরকারী যখন আপনি multiline স্ট্রিং বা একাধিক লাইনের মধ্যে কোনো প্যাটার্ন খুঁজতে চান।
সাধারণভাবে Dot (.) এর ব্যবহার
সাধারণ RegExp-এ dot (.) চিহ্ন শুধুমাত্র একটি লাইন এর মধ্যে সমস্ত চরিত্রের সাথে মেলে, কিন্তু এটি new line (\n) কে মেলাবে না।
উদাহরণ:
let regex = /a.b/;
let str = "a\nb";
console.log(regex.test(str)); // false
এখানে, /a.b/ প্যাটার্নটি স্ট্রিং "a\nb" এর মধ্যে a এবং b এর মধ্যে কোনো অক্ষর খুঁজে পাচ্ছে না, কারণ dot (.) চিহ্নটি নতুন লাইন \n কে মেলাতে পারে না।
s (Dotall Mode) সক্রিয় করা
JavaScript-এ s ফ্ল্যাগ যোগ করলে dot (.) চিহ্নটি স্ট্রিংয়ের নতুন লাইনসহ সমস্ত চরিত্রের সাথে মেলাতে পারে। সেক্ষেত্রে, ডট চিহ্নটি শুধু এক লাইনের মধ্যে নয়, স্ট্রিংয়ের পুরো অংশের মধ্যে যে কোনো চরিত্রকে মেলাবে।
এটি করার জন্য RegExp প্যাটার্নের সাথে /s ফ্ল্যাগ ব্যবহার করতে হবে।
উদাহরণ:
let regex = /a.b/s;
let str = "a\nb";
console.log(regex.test(str)); // true
এখানে, /a.b/s প্যাটার্নটি স্ট্রিং "a\nb" এর মধ্যে a এবং b এর মধ্যে থাকা নতুন লাইন \n কে মেলাতে সক্ষম হচ্ছে, কারণ s (Dotall Mode) ফ্ল্যাগটি সক্রিয় করা হয়েছে।
ব্যবহার:
- Dotall Mode (s) ব্যবহার করে আপনি একাধিক লাইনের মধ্যে বা স্ট্রিংয়ের ভেতরে নতুন লাইন সহ সমস্ত চরিত্র মেলাতে পারবেন।
- সাধারণত আপনি যখন multiline ডাটা বা প্যাটার্নে নতুন লাইনের মধ্যে কিছু খুঁজতে চান, তখন Dotall Mode ব্যবহার করা হয়।
সারাংশ
s (Dotall Mode) ফ্ল্যাগ RegExp-এ dot (.) চিহ্নের আচরণ পরিবর্তন করে, যা স্ট্রিংয়ের নতুন লাইন সহ সমস্ত চরিত্র মেলাতে সক্ষম হয়। সাধারণভাবে, dot (.) শুধুমাত্র একটি লাইনের মধ্যে মেলে, তবে s ফ্ল্যাগটি নতুন লাইনসহ সম্পূর্ণ স্ট্রিংয়ের চরিত্রগুলোকে মেলানোর সুবিধা দেয়।
Read more